﻿////////////////////////////////////////////////////////////////////////
//Autor: Gabriel Tame Borao  - gabrieltame@yahoo.es 
//Fecha: 2010/09/15 01:26
//Solucion: GTameReport.sln
//Proyecto: GTameReport
//Fichero: ReportItemsTypeComposite.cs
//
//	Copyright (C) 2010  Gabriel Tame Borao (GTB)
//
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////
namespace GTameReport
{
    using Rdl;
    using System;
    using System.Collections;

    public class ReportItemsTypeComposite : Hashtable
    {
        public ReportItemsType Write()
        {
            ReportItemsType type = new ReportItemsType();
            ArrayList list = new ArrayList();
            foreach (object obj2 in this.Values)
            {
                if (obj2 is GTameReport.TextboxType)
                {
                    list.Add(((GTameReport.TextboxType) obj2).Write());
                }
                else
                {
                    if (obj2 is GTameReport.ChartType)
                    {
                        list.Add(((GTameReport.ChartType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.CustomReportItemType)
                    {
                        list.Add(((GTameReport.CustomReportItemType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.ImageType)
                    {
                        list.Add(((GTameReport.ImageType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.LineType)
                    {
                        list.Add(((GTameReport.LineType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.ListType)
                    {
                        list.Add(((GTameReport.ListType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.MatrixType)
                    {
                        list.Add(((GTameReport.MatrixType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.RectangleType)
                    {
                        list.Add(((GTameReport.RectangleType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.SubreportType)
                    {
                        list.Add(((GTameReport.SubreportType) obj2).Write());
                        continue;
                    }
                    if (obj2 is GTameReport.TableType)
                    {
                        list.Add(((GTameReport.TableType) obj2).Write());
                    }
                }
            }
            type.Items = list.ToArray();
            list = null;
            return type;
        }
    }
}

